/*
 * sdeclare.c
 *
 *  Created on: 2013-5-21
 *      Author: xkaying
 */


#include "sdeclare.h"

struct _sdeclareitem{
		int type;//类型
		void *data;//可能是svalue哦
};

struct _sdeclare{
		SValue *type;//变量名字
		char *name;//变量的真正名字
		//变量值,可能是一个多维数组
		int col; //行数量
		int row; //列数量
		List *items;
};


SDeclare *SDeclareInit()
{
	SDeclare *pdeclare;
	pdeclare=(SDeclare*)malloc(sizeof(SDeclare));
	pdeclare->type=0;
	pdeclare->name=0;
	pdeclare->col=1;
	pdeclare->row=1;
	pdeclare->items=0;
	return pdeclare;
}

void SDeclareAppendType(SDeclare *pdeclare,SValue *pvalue)
{
	assert(pdeclare);
	assert(pvalue);
	pdeclare->type=pvalue;
}

void SDeclareAppend(SDeclare *pdeclare,char *name)
{
	assert(pdeclare);
	assert(name);
	pdeclare->name=name;
}

void SDeclareAppendSet(SDeclare *pdeclare,int col,int row)
{
	assert(pdeclare);
	pdeclare->col=col;
	pdeclare->row=row;
}

void SDeclareAppendItem(SDeclare *pdeclare,SDeclareItem *pitem)
{
	assert(pdeclare);
	assert(pitem);
	ListPush(pdeclare->items,pitem);
}

